home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / ifl / libtiff.z / libtiff
Text File  |  1998-10-20  |  23KB  |  392 lines

  1.  
  2.  
  3.  
  4. IIIINNNNTTTTRRRROOOO((((3333TTTT))))         IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          IIIINNNNTTTTRRRROOOO((((3333TTTT))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      libtiff - introduction to _l_i_b_t_i_f_f, a library for reading and writing TIFF
  10.      files
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ####iiiinnnncccclllluuuuddddeeee <<<<ttttiiiiffffffffiiiioooo....hhhh>>>>
  14.      cc file.c ----llllttttiiiiffffffff
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      _l_i_b_t_i_f_f is a library for reading and writing data files encoded with the
  18.      _T_a_g _I_m_a_g_e _F_i_l_e format, Revision 6.0 (or revision 5.0 or revision 4.0).
  19.      This file format is suitable for archiving multi-color and monochromatic
  20.      image data.
  21.  
  22.      The library supports several compression algorithms, as indicated by the
  23.      _C_o_m_p_r_e_s_s_i_o_n field, including:  no compression (1), CCITT 1D Huffman
  24.      compression (2), CCITT Group 3 Facsimile compression (3), CCITT Group 4
  25.      Facsimile compression (4), Lempel-Ziv & Welch compression (5), baseline
  26.      JPEG compression (7), word-aligned 1D Huffman compression (32771), and
  27.      PackBits compression (32773).  In addition, several nonstandard
  28.      compression algorithms are supported:  the 4-bit compression algorithm
  29.      used by the _T_h_u_n_d_e_r_S_c_a_n program (32809) (decompression only), NeXT's 2-
  30.      bit compression algorithm (32766) (decompression only), and an
  31.      experimental LZ-style algorithm known as Deflate (32946).  Directory
  32.      information may be in either little- or big-endian byte order-byte
  33.      swapping is automatically done by the library.  Data bit ordering may be
  34.      either Most Significant Bit (MSB) to Least Significant Bit (LSB) or LSB
  35.      to MSB.  Finally, the library does not support files in which the
  36.      _B_i_t_s_P_e_r_S_a_m_p_l_e, _C_o_m_p_r_e_s_s_i_o_n, _M_i_n_S_a_m_p_l_e_V_a_l_u_e, or _M_a_x_S_a_m_p_l_e_V_a_l_u_e fields are
  37.      defined differently on a per-sample basis (in Rev. 6.0 the _C_o_m_p_r_e_s_s_i_o_n
  38.      tag is not defined on a per-sample basis, so this is immaterial).
  39.  
  40. DDDDAAAATTTTAAAA TTTTYYYYPPPPEEEESSSS
  41.      The library makes extensive use of C typedefs to promote portability.
  42.      Two sets of typedefs are used, one for communication with clients of the
  43.      library and one for internal data structures and parsing of the TIFF
  44.      format.  The following typedefs are exposed to users either through
  45.      function definitions or through parameters passed through the varargs
  46.      interfaces.
  47.           typedef unsigned short uint16;      16-bit unsigned integer
  48.           typedef unsigned <_t_h_i_n_g> uint32;    32-bit unsigned integer
  49.           typedef unsigned int ttag_t;        directory tag
  50.           typedef uint16 tdir_t;              directory index
  51.           typedef uint16 tsample_t;           sample number
  52.           typedef uint32 tstrip_t;            strip number
  53.           typedef uint32 ttile_t;             tile number
  54.           typedef int32 tsize_t;              i/o size in bytes
  55.           typedef void* tdata_t;              image data ref
  56.           typedef void* thandle_t;            client data handle
  57.           typedef int32 toff_t;               file offset
  58.      Note that _t_s_t_r_i_p__t, _t_t_i_l_e__t, and _t_s_i_z_e__t are constrained to be no more
  59.  
  60.  
  61.                                                                         PPPPaaaaggggeeee 1111
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. IIIINNNNTTTTRRRROOOO((((3333TTTT))))         IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          IIIINNNNTTTTRRRROOOO((((3333TTTT))))
  69.  
  70.  
  71.  
  72.      than 32-bit quantities by 32-bit fields they are stored in in the TIFF
  73.      image.  Likewise _t_s_a_m_p_l_e__t is limited by the 16-bit field used to store
  74.      the _S_a_m_p_l_e_s_P_e_r_P_i_x_e_l tag.  _t_d_i_r__t constrains the maximum number of IFDs
  75.      that may appear in an image and may be an arbitrary size (w/o penalty).
  76.      _t_t_a_g__t must be either int, unsigned int, pointer, or double because the
  77.      library uses a varargs interface and ANSI C restricts the type of the
  78.      parameter before an ellipsis to be a promoted type.  _t_o_f_f__t is defined as
  79.      int32 because TIFF file offsets are (unsigned) 32-bit quantities.  A
  80.      signed value is used because some interfaces return -1 on error.
  81.      Finally, note that user-specified data references are passed as opaque
  82.      handles and only cast at the lowest layers where their type is presumed.
  83.  
  84. LLLLIIIISSSSTTTT OOOOFFFF RRRROOOOUUUUTTTTIIIINNNNEEEESSSS
  85.      The following routines are part of the library.  Consult specific manual
  86.      pages for details on their operation.  The manual page names listed below
  87.      are for systems where the full function names can not be encoded in the
  88.      filesystem; on most systems doing ``man function-name'' will work.
  89.      _N_a_m_e                   _A_p_p_e_a_r_s _o_n _P_a_g_e  _D_e_s_c_r_i_p_t_i_o_n
  90.      TIFFCheckTile          tile.3t          very x,y,z,sample is within image
  91.      TIFFClientOpen         open.3t          open a file for reading or writing
  92.      TIFFClose              close.3t         close an open file
  93.      TIFFComputeStrip       strip.3t         return strip containing y,sample
  94.      TIFFComputeTile        tile.3t          return tile containing x,y,z,sample
  95.      TIFFCurrentDirectory   query.3t         return index of current directory
  96.      TIFFCurrentRow         query.3t         return index of current scanline
  97.      TIFFCurrentStrip       query.3t         return index of current strip
  98.      TIFFCurrentTile        query.3t         return index of current tile
  99.      TIFFError              error.3t         library error handler
  100.      TIFFFdOpen             open.3t          open a file for reading or writing
  101.      TIFFFileName           query.3t         return name of open file
  102.      TIFFFileno             query.3t         return open file descriptor
  103.      TIFFFlush              flush.3t         flush all pending writes
  104.      TIFFFlushData          flush.3t         flush pending data writes
  105.      TIFFGetBitRevTable     swab.3t          return bit reversal table
  106.      TIFFGetField           getfield.3t      return tag value in current directory
  107.      TIFFGetFieldDefaulted  getfield.3t      return tag value in current directory
  108.      TIFFGetMode            query.3t         return open file mode
  109.      TIFFGetVersion         query.3t         return library version string
  110.      TIFFIsTiled            query.3t         return true if image data is tiled
  111.      TIFFIsByteSwapped      query.3t         return true if image data is byte-swapped
  112.      TIFFNumberOfStrips     strip.3t         return number of strips in an image
  113.      TIFFNumberOfTiles      tile.3t          return number of tiles in an image
  114.      TIFFOpen               open.3t          open a file for reading or writing
  115.      TIFFPrintDirectory     print.3t         print description of the current directory
  116.      TIFFReadBufferSetup    rdbuf.3t         specify i/o buffer for reading
  117.      TIFFReadDirectory      readdir.3t       read the next directory
  118.      TIFFReadEncodedStrip   rdestrip.3t      read and decode a strip of data
  119.      TIFFReadEncodedTile    rdetile.3t       read and decode a tile of data
  120.      TIFFReadRawStrip       rdrstrip.3t      read a raw strip of data
  121.      TIFFReadRawTile        rdrtile.3t       read a raw tile of data
  122.      TIFFReadRGBAImage      rdimage.3t       read an image into a fixed format raster
  123.  
  124.  
  125.  
  126.                                                                         PPPPaaaaggggeeee 2222
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. IIIINNNNTTTTRRRROOOO((((3333TTTT))))         IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          IIIINNNNTTTTRRRROOOO((((3333TTTT))))
  134.  
  135.  
  136.  
  137.      TIFFReadScanline       readline.3t      read and decode a row of data
  138.      TIFFReadTile           readtile.3t      read and decode a tile of data
  139.      TIFFReverseBits        swab.3t          reverse bits in an array of bytes
  140.      TIFFRGBAImageBegin     rgbaimage.3t     setup decoder state for TIFFRGBAImageGet
  141.      TIFFRGBAImageEnd       rgbaimage.3t     release TIFFRGBAImage decoder state
  142.      TIFFRGBAImageGet       rgbaimage.3t     read and decode an image
  143.      TIFFRGBAImageOK        rgbaimage.3t     is image readable by TIFFRGBAImageGet
  144.      TIFFScanlineSize       size.3t          return size of a scanline
  145.      TIFFSetDirectory       setdir.3t        set the current directory
  146.      TIFFSetSubDirectory    setdir.3t        set the current directory
  147.      TIFFSetErrorHandler    error.3t         set error handler function
  148.      TIFFSetField           setfield.3t      set a tag's value in the current directory
  149.      TIFFSetWarningHandler  error.3t         set warning handler function
  150.      TIFFStripSize          size.3t          return size of a strip
  151.      TIFFSwabShort          swab.3t          swap bytes of short
  152.      TIFFSwabLong           swab.3t          swap bytes of long
  153.      TIFFSwabArrayOfShort   swab.3t          swap bytes of an array of shorts
  154.      TIFFSwabArrayOfLong    swab.3t          swap bytes of an array of longs
  155.      TIFFTileRowSize        size.3t          return size of a row in a tile
  156.      TIFFTileSize           size.3t          return size of a tile
  157.      TIFFVGetField          getfield.3t      return tag value in current directory
  158.      TIFFVGetFieldDefaulted getfield.3t      return tag value in current directory
  159.      TIFFVSetField          setfield.3t      set a tag's value in the current directory
  160.      TIFFWarning            warning.3t       library warning handler
  161.      TIFFWriteDirectory     writedir.3t      write the current directory
  162.      TIFFWriteEncodedStrip  wrestrip.3t      compress and write a strip of data
  163.      TIFFWriteEncodedTile   wretile.3t       compress and write a tile of data
  164.      TIFFWriteRawStrip      wrrstrip.3t      write a raw strip of data
  165.      TIFFWriteRawTile       wrrtile.3t       write a raw tile of data
  166.      TIFFWriteScanline      writeline.3t     write a scanline of data
  167.      TIFFWriteTile          wrrtile.3t       compress and write a tile of data
  168.  
  169. TTTTAAAAGGGG UUUUSSSSAAAAGGGGEEEE
  170.      The table below lists the TIFF tags that are recognized and handled by
  171.      the library.  If no use is indicated in the table, then the library reads
  172.      and writes the tag, but does not use it internally.  Note that some tags
  173.      are meaningful only when a particular compression scheme is being used;
  174.      e.g.  _G_r_o_u_p_3_O_p_t_i_o_n_s is only useful if _C_o_m_p_r_e_s_s_i_o_n is set to CCITT Group 3
  175.      encoding.  Tags of this sort are considered _c_o_d_e_c-_s_p_e_c_i_f_i_c tags and the
  176.      library does not recognize them except when the _C_o_m_p_r_e_s_s_i_o_n tag has been
  177.      previously set to the relevant compression scheme.
  178.      _T_a_g _N_a_m_e                _V_a_l_u_e  _R/_W  _L_i_b_r_a_r_y _U_s_e/_N_o_t_e_s
  179.      Artist                  315    R/W
  180.      BadFaxLines             326    R/W
  181.      BitsPerSample           258    R/W  lots
  182.      CellLength              265         parsed but ignored
  183.      CellWidth               264         parsed but ignored
  184.      CleanFaxData            327    R/W
  185.      ColorMap                320    R/W
  186.      ColorResponseUnit       300         parsed but ignored
  187.      Compression             259    R/W  choosing codec
  188.  
  189.  
  190.  
  191.                                                                         PPPPaaaaggggeeee 3333
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. IIIINNNNTTTTRRRROOOO((((3333TTTT))))         IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          IIIINNNNTTTTRRRROOOO((((3333TTTT))))
  199.  
  200.  
  201.  
  202.      ConsecutiveBadFaxLines  328    R/W
  203.      DataType                32996  R    obsoleted by SampleFormat tag
  204.      DateTime                306    R/W
  205.      DocumentName            269    R/W
  206.      DotRange                336    R/W
  207.      ExtraSamples            338    R/W  lots
  208.      FaxRecvParams           34908  R/W
  209.      FaxSubAddress           34909  R/W
  210.      FaxRecvTime             34910  R/W
  211.      FillOrder               266    R/W  control bit order
  212.      FreeByteCounts          289         parsed but ignored
  213.      FreeOffsets             288         parsed but ignored
  214.      GrayResponseCurve       291         parsed but ignored
  215.      GrayResponseUnit        290         parsed but ignored
  216.      Group3Options           292    R/W  used by Group 3 codec
  217.      Group4Options           293    R/W
  218.      HostComputer            316    R/W
  219.      ImageDepth              32997  R/W  tile/strip calculations
  220.      ImageDescription        270    R/W
  221.      ImageLength             257    R/W  lots
  222.      ImageWidth              256    R/W  lots
  223.      InkNames                333    R/W
  224.      InkSet                  332    R/W
  225.      JPEGTables              347    R/W  used by JPEG codec
  226.      Make                    271    R/W
  227.      Matteing                32995  R    obsoleted by ExtraSamples tag
  228.      MaxSampleValue          281    R/W
  229.      MinSampleValue          280    R/W
  230.      Model                   272    R/W
  231.      NewSubFileType          254    R/W  called SubFileType in spec
  232.      NumberOfInks            334    R/W
  233.      Orientation             274    R/W
  234.      PageName                285    R/W
  235.      PageNumber              297    R/W
  236.      PhotometricInterpretation      262  R/Wused by Group 3 and JPEG codecs
  237.      PlanarConfiguration     284    R/W  data i/o
  238.      Predictor               317    R/W  used by LZW and Deflate codecs
  239.      PrimaryChromacities     319    R/W
  240.      ReferenceBlackWhite     532    R/W
  241.      ResolutionUnit          296    R/W  used by Group 3 codec
  242.      RowsPerStrip            278    R/W  data i/o
  243.      SampleFormat            339    R/W
  244.      SamplesPerPixel         277    R/W  lots
  245.      SMinSampleValue         340    R/W
  246.      SMaxSampleValue         341    R/W
  247.      Software                305    R/W
  248.      StripByteCounts         279    R/W  data i/o
  249.      StripOffsets            273    R/W  data i/o
  250.      SubFileType             255    R/W  called OSubFileType in spec
  251.      TargetPrinter           337    R/W
  252.      Thresholding            263    R/W
  253.      TileByteCounts          324    R/W  data i/o
  254.  
  255.  
  256.  
  257.                                                                         PPPPaaaaggggeeee 4444
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264. IIIINNNNTTTTRRRROOOO((((3333TTTT))))         IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          IIIINNNNTTTTRRRROOOO((((3333TTTT))))
  265.  
  266.  
  267.  
  268.      TileDepth               32998  R/W  tile/strip calculations
  269.      TileLength              323    R/W  data i/o
  270.      TileOffsets             324    R/W  data i/o
  271.      TileWidth               322    R/W  data i/o
  272.      TransferFunction        301    R/W
  273.      WhitePoint              318    R/W
  274.      XPosition               286    R/W
  275.      XResolution             282    R/W
  276.      YCbCrCoefficients       529    R/W  used by TIFFRGBAImage support
  277.      YCbCrPositioning        531    R/W  tile/strip size calulcations
  278.      YCbCrSubsampling        530    R/W
  279.      YPosition               286    R/W
  280.      YResolution             283    R/W  used by Group 3 codec
  281.  
  282. PPPPSSSSEEEEUUUUDDDDOOOO TTTTAAAAGGGGSSSS
  283.      In addition to the normal TIFF tags the library supports a collection of
  284.      tags whose values lie in a range outside the valid range of TIFF tags.
  285.      These tags are termed _p_s_e_u_d-_t_a_g_s and are used to control various codec-
  286.      specific functions within the library.  The table below summarizes the
  287.      defined pseudo-tags.
  288.      _T_a_g _N_a_m_e                _C_o_d_e_c  _R/_W  _L_i_b_r_a_r_y _U_s_e/_N_o_t_e_s
  289.      TIFFTAG_FAXMODE         G3     R/W  general codec operation
  290.      TIFFTAG_FAXFILLFUNC     G3/G4  R/W  bitmap fill function
  291.      TIFFTAG_JPEGQUALITY     JPEG   R/W  compression quality control
  292.      TIFFTAG_JPEGCOLORMODE   JPEG   R/W  control colorspace conversions
  293.      TIFFTAG_JPEGTABLESMODE  JPEG   R/W  control contents of _J_P_E_G_T_a_b_l_e_s tag
  294.  
  295.      TTTTIIIIFFFFFFFFTTTTAAAAGGGG____FFFFAAAAXXXXMMMMOOOODDDDEEEE
  296.           Control the operation of the Group 3 codec.  Possible values
  297.           (independent bits that can be combined by or'ing them together) are:
  298.           FAXMODE_CLASSIC (enable old-style format in which the RTC is written
  299.           at the end of the last strip), FAXMODE_NORTC (opposite of
  300.           FAXMODE_CLASSIC; also called FAXMODE_CLASSF), FAXMODE_NOEOL (do not
  301.           write EOL codes at the start of each row of data), FAXMODE_BYTEALIGN
  302.           (align each encoded row to an 8-bit boundary), FAXMODE_WORDALIGN
  303.           (align each encoded row to an 16-bit boundary), The default value is
  304.           dependent on the compression scheme; this pseudo-tag is used by the
  305.           various G3 and G4 codecs to share code.
  306.  
  307.      TTTTIIIIFFFFFFFFTTTTAAAAGGGG____FFFFAAAAXXXXFFFFIIIILLLLLLLLFFFFUUUUNNNNCCCC
  308.           Control the function used to convert arrays of black and white runs
  309.           to packed bit arrays.  This hook can be used to image decoded
  310.           scanlines in multi-bit depth rasters (e.g. for display in colormap
  311.           mode) or for other purposes.  The default value is a pointer to a
  312.           builtin function that images packed bilevel data.
  313.  
  314.      TTTTIIIIFFFFFFFFTTTTAAAAGGGG____JJJJPPPPEEEEGGGGQQQQUUUUAAAALLLLIIIITTTTYYYY
  315.           Control the compression quality level used in the baseline
  316.           algorithm.  Note that quality levels are in the range 0-100 with a
  317.           default value of 75.
  318.  
  319.  
  320.  
  321.  
  322.                                                                         PPPPaaaaggggeeee 5555
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329. IIIINNNNTTTTRRRROOOO((((3333TTTT))))         IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll          IIIINNNNTTTTRRRROOOO((((3333TTTT))))
  330.  
  331.  
  332.  
  333.      TTTTIIIIFFFFFFFFTTTTAAAAGGGG____JJJJPPPPEEEEGGGGCCCCOOOOLLLLOOOORRRRMMMMOOOODDDDEEEE
  334.           Control whether or not conversion is done between RGB and YCbCr
  335.           colorspaces.  Possible values are:  JPEGCOLORMODE_RAW (do not
  336.           convert), and JPEGCOLORMODE_RGB (convert to/from RGB) The default
  337.           value is JPEGCOLORMODE_RAW.
  338.  
  339.      TTTTIIIIFFFFFFFFTTTTAAAAGGGG____JJJJPPPPEEEEGGGGTTTTAAAABBBBLLLLEEEESSSSMMMMOOOODDDDEEEE
  340.           Control the information written in the _J_P_E_G_T_a_b_l_e_s tag.  Possible
  341.           values (independent bits that can be combined by or'ing them
  342.           together) are:  JPEGTABLESMODE_QUANT (include quantization tables),
  343.           and JPEGTABLESMODE_HUFF (include Huffman encoding tables).  The
  344.           default value is JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF.
  345.  
  346. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  347.      All error messages are directed through the _T_I_F_F_E_r_r_o_r routine.  By
  348.      default messages are directed to ssssttttddddeeeerrrrrrrr in the form:  _m_o_d_u_l_e: _m_e_s_s_a_g_e\_n.
  349.      Warning messages are likewise directed through the _T_I_F_F_W_a_r_n_i_n_g routine.
  350.  
  351. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  352.      _f_a_x_2_t_i_f_f(1), _g_i_f_2_t_i_f_f(1), _p_a_l_2_r_g_b(1), _p_p_m_2_t_i_f_f(1), _r_g_b_2_y_c_b_c_r(1),
  353.      _r_a_s_2_t_i_f_f(1), _s_g_i_2_t_i_f_f(1), _t_i_f_f_2_b_w(1), _t_i_f_f_d_i_t_h_e_r(1), _t_i_f_f_d_u_m_p(1),
  354.      _t_i_f_f_c_p(1), _t_i_f_f_c_m_p(1), _t_i_f_f_g_t(1), _t_i_f_f_i_n_f_o(1), _t_i_f_f_m_e_d_i_a_n(1),
  355.      _t_i_f_f_s_p_l_i_t(1), _t_i_f_f_s_v(1),
  356.  
  357.      _T_a_g _I_m_a_g_e _F_i_l_e _F_o_r_m_a_t _S_p_e_c_i_f_i_c_a_t_i_o_n - _R_e_v_i_s_i_o_n _6._0, an Aldus Technical
  358.      Memorandum.
  359.  
  360.      _T_h_e _S_p_i_r_i_t _o_f _T_I_F_F _C_l_a_s_s _F, an appendix to the TIFF 5.0 specification
  361.      prepared by Cygnet Technologies.
  362.  
  363. BBBBUUUUGGGGSSSS
  364.      The library does not support multi-sample images where some samples have
  365.      different bits/sample.
  366.  
  367.      The library does not support random access to compressed data that is
  368.      organized with more than one row per tile or strip.  The library discards
  369.      unknown tags.  The library should do more validity checking of a
  370.      directory's contents.
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.                                                                         PPPPaaaaggggeeee 6666
  389.  
  390.  
  391.  
  392.